<?php

namespace app\common\model\setting;

use app\common\model\Config;
use app\common\util\SingleObjectClass;

class ConfigWeb extends SingleObjectClass
{
    // 用户名
    public string $name;
    // 是否审核
    public string $is_audit = "0";
    // 第一位客服姓名
    public string $customer_service1_name;
    // 第一位客服电话
    public string $customer_service1_phone;
    // 第二位客服姓名
    public string $customer_service2_name;
    // 第二位客服电话
    public string $customer_service2_phone;
    // 签署开始时间
    public string $sign_start_time;
    // 签署结束时间
    public string $sign_end_time;

    /**
     * 每月最大异常签退次数
     */
    public int $abnormal_sign_counts = 2;

    public float $hour_half_day = 3;

    public float $hour_one_day = 6;


    public string $sign_tips="";

    /**
     * 每日驻点的最大小时数
     * @var float|int
     */
    public float $max_hour = 12;

    /**
     * 默认角色id
     */
    public int $default_role_id = 5;
    public int $default_post_id = 3;

    /**
     * 统计启用时间
     * @var string
     */
    public string $help_static_start = '2024-01-01';

    /**
     * @var int 版本代码
     */
    public int $version_code = 1;

    public function __construct()
    {

        $web = Config::getConfigContent("web");
        //遍历web赋值给当前对象属性
        foreach ($web as $key => $value) {
            //如果对象属性存在就赋值
            if (property_exists($this, $key)) {
                $this->$key = $value;
            }
        }
        //设置项目
        //Log::write('ConfigWeb::__construct()');
    }

    /**
     * 根据小时数获取天数
     * @param $hour
     * @return float|int
     */
    public function getDayByHour($hour)
    {
        if ($hour >= $this->hour_one_day) {
            return 1;
        }
        if ($hour >= $this->hour_half_day) {
            return 0.5;
        }
        return 0;
    }

    /**
     * 获取配置
     * @return false|string
     */
    public function toJson()
    {
        //转成json字符串
        return json_encode($this, JSON_UNESCAPED_UNICODE);
    }

    public function toArray()
    {
        //转成json字符串
        return json_decode(json_encode($this), true);
    }
}
